1. Field of the Invention
The present invention relates to a method and a system for authenticating a user by using digital certificates for public key cryptography, and in particular to a method and a system for employing as a proxy a temporary digital ID signed by using a personal key.
2. Description of the Related Art
In the process of the development of public key cryptography, personal authentication has come to be performed by using digital certificates. For authentication using digital certificates, in order to prevent copying of a user""s private key, a smart card has been developed in which the private key is stored and from which external reading of the private key is inhibited.
A smart card is an intelligent device having an internal memory. Information stored inside the smart card is protected by using a password, and the reading or rewriting of the data using an illegal method is inhibited (tamperproof). Therefore, a user can safely store private data. Since an authentication process (specifically, the signing of a document using a private key) using a smart card can not be performed unless the user physically owns the card, the smart card is considered to be safer than a hard disk or a floppy disk for the storage of a private key. However, for an application that requires the continuous employment of a key, to use a smart card, the card must be inserted into a computer terminal, and when the smart card holder leaves his or her desk for a while, he or she must remove the card and interrupt the execution of the application.
A process that employs a Secure Socket Layer (SSL) is well known as a safe encrypted communication method that is employed for both public key cryptography and private key cryptography. For the SSL process an encryption key is changed each session. In short, communication is performed by providing a different key for each page. While no detailed explanation is given for the applicable protocol, an outline of the interactive authentication protocol, such as is used for the SSL3 process, is as follows.
First, when a user is requested by a server-side application to sign a document, the user employs his or her private key to transmit to the server a signed document and a user""s certificate. The server examines the signature on the document, confirms that the signature was applied by an authenticated user, and validates the user""s certificate. Although with the SSL process a single session seldom lasts several months, a Web site that employs an SSL must use a private key of a server each time it receives an SSL connection request. If the private key is stored in a smart card, the card must be inserted into the server frequently, or it must be retained at the server constantly.
If a personal key is also stored in the smart card, it is also very inconvenient when at midnight a site that requires client authentication by the SSL3 process is automatically updated by using cyclic software.
It is, therefore, one object of the present invention to provide a system that employs a temporary digital ID (identifier) signed by using a private key, so that the digital ID can be used as a proxy for a specific period of time and for a specific purpose.
It is another object of the present invention to provide a method and a system that enables a user to perform a signature authentication process even if he or she does not physically possess a card.
It is an additional object of the present invention to provide a signature authentication method and system for which a private key is not required each time a private key is requested by an application that is running continuously.
It is a further object of the present invention to provide a method and system comprising a chain of signature authentication processing steps.
To achieve the above objects, when a signature is requested by a server application, a user does not use his or her private key, but employs a temporary key generated using the private key. A temporary certificate for the temporary key is signed using the user""s private key.
The temporary certificate includes information concerning the period of time during which the temporary certificate is valid and information concerning the purpose for which used. Upon receipt of a request from an application that a document be signed, a client transmits to the server a document signed using the temporary key, the temporary certificate and a user""s certificate. First, the server examines the signature; second, it determines whether the temporary certificate is still effective, i.e., whether the period of time during which it is valid has expired and whether the certificate is for another application; third, it confirms that the temporary certificate has been signed by an authenticated user. Finally, the server validates the user""s certificate.